home *** CD-ROM | disk | FTP | other *** search
/ No Fragments Archive 12: Textmags & Docs / nf_archive_12.iso / MAGS / SOURCES / ATARI_SRC.ZIP / atari source / HDX_BACK / MVICON / AICON2.S < prev    next >
Encoding:
Text File  |  2001-02-09  |  2.9 KB  |  151 lines

  1.  
  2. COLBIT0    equ    $018
  3. COLBIT1    equ    $01A
  4. COLBIT2    equ    $01C
  5. COLBIT3    equ    $01E
  6. LSTLIN    equ    $020
  7. LNMASK    equ    $022
  8. WMODE    equ    $024
  9. X1        equ    $026
  10. Y1        equ    $028
  11. X2        equ    $02A
  12. Y2         equ    $02C
  13. PATPTR     equ    $02E
  14. PATMSK    equ    $032
  15. MFILL    equ    $034
  16.  
  17. ;------------------------------------------
  18. ;
  19. ; _drawicon(X,Y)
  20. ; WORD    X1         4(sp)
  21. ; WORD    Y1         6(sp)
  22. ; draw a icon in the point of (X,Y)
  23.  
  24.  
  25.         .globl    _drawicon
  26.  
  27. _drawicon:
  28.  
  29.     dc.w     $A000                ; Make line a Init call
  30.     movea.l    a0,    a3
  31.     movea.l    a1,    a4
  32.     movea.l    a2,    a5
  33.     move.w     4(sp), d3
  34.     move.w     6(sp), d5
  35.     move.w    d3,    d4
  36.     move.w    d5,    d6
  37.     addi.w     #20, d4 
  38.     addi.w     #40, d6 
  39.     jsr        _vhline
  40.     move.w     d6, d5
  41.     move.w    d3,    d4
  42.     subi.w    #20, d3
  43.     addq.w     #5, d6 
  44.     jsr        _vhline
  45.     move.w     d3, d4
  46.     addi.w     #60, d3 
  47.     jsr        _vhlineb
  48.     move.w    d3,    d4
  49.     subi.w     #20, d3 
  50.     subq.w    #5,    d6
  51.     subi.w    #40, d5
  52.     jsr        _vhliner
  53.     rts
  54.  
  55. ;------------------------------------------
  56. ;
  57. ; _vhline(X1,Y1,X2,Y2, X3)
  58. ; WORD    X1         d3
  59. ; WORD    Y1        d4         
  60. ; WORD    X2        d3     
  61. ; WORD    Y2        d5 
  62. ; WORD    X3        d6
  63. ;
  64. ; draw a solid vertical line form (X1,Y1) to (X2,Y2)
  65. ; draw a solid horizontal line form (X1,Y1) to (X3,Y1)
  66.  
  67.  
  68.         .globl    _vhline
  69.  
  70. _vhline:
  71.  
  72.         move.l    a3,    d0
  73.         movea.l    a3,    a0
  74.         movea.l    a4,    a1
  75.         movea.l    a5,    a2
  76.         move.l    #$00010001, COLBIT0(a0)        ; set COLBIT variables
  77. ;move.w    #1, COLBIT1(a0)
  78.         move.l    #$00010001, COLBIT2(a0)     
  79. ;move.w    #1, COLBIT3(a0)
  80.         clr.w    LSTLIN(a0)            ; draw last pixel of line
  81.         move.l    #$FFFF0002, LNMASK(a0)    ; line style mask
  82. ;move.w    #2, WMODE(a0)         writing mode (replace)
  83.         move.w     d3, X1(a0)            ; (x1,y1) and (x2, y2) into
  84.         move.w     d5, Y1(a0)            ; appropriate variables
  85.         move.w     d3, X2(a0)
  86.         move.w     d6, Y2(a0)
  87.         dc.w    $A003                ; Arbitrary Line
  88.  
  89.  
  90.         movea.l    a3,    a0
  91.         movea.l    a4,    a1
  92.         movea.l    a5,    a2
  93.         move.w     d4, X2(a0)
  94.         move.l    #pat, PATPTR(a0)    ; pattern pointer
  95.         clr.l     PATMSK(a0)            ; Pattern length n-1=0
  96. ;clr.w     MFILL(a0)             Multiple Plane fill off
  97.         dc.w    $A004                ; Arbitrary Line
  98.         rts
  99.  
  100.         .globl    _vhliner
  101.  
  102. _vhliner:
  103.  
  104.         move.l    a3,    d0
  105.         movea.l    a3,    a0
  106.         movea.l    a4,    a1
  107.         movea.l    a5,    a2
  108.         move.w     d3, X1(a0)            ; (x1,y1) and (x2, y2) into
  109.         move.w     d5, Y1(a0)            ; appropriate variables
  110.         move.w     d3, X2(a0)
  111.         move.w     d6, Y2(a0)
  112.         dc.w    $A003                ; Arbitrary Line
  113.  
  114.  
  115.         movea.l    a3,    a0
  116.         movea.l    a4,    a1
  117.         movea.l    a5,    a2
  118.         move.w     d6, Y1(a0)            ; appropriate variables
  119.         move.w     d4, X2(a0)
  120.         dc.w    $A004                ; Arbitrary Line
  121.         rts
  122.  
  123.         .globl    _vhlineb
  124.  
  125. _vhlineb:
  126.  
  127.         move.l    a3,    d0
  128.         movea.l    a3,    a0
  129.         movea.l    a4,    a1
  130.         movea.l    a5,    a2
  131.         move.w     d3, X1(a0)            ; (x1,y1) and (x2, y2) into
  132.         move.w     d5, Y1(a0)            ; appropriate variables
  133.         move.w     d3, X2(a0)
  134.         move.w     d6, Y2(a0)
  135.         dc.w    $A003                ; Arbitrary Line
  136.  
  137.  
  138.         movea.l    a3,    a0
  139.         movea.l    a4,    a1
  140.         movea.l    a5,    a2
  141.         move.w     d4, X1(a0)            ; appropriate variables
  142.         move.w     d6, Y1(a0)            ; appropriate variables
  143.         dc.w    $A004                ; Arbitrary Line
  144.         rts
  145.  
  146. .data
  147. pat:     dc.w    $FFFF                ; Pattern for line.
  148.  
  149.  
  150.  
  151.